Lenient evaluation is neither strict nor lazy

نویسنده

  • Guy Tremblay
چکیده

What is a non-strict functional language? Is a non-strict language necessarily lazy? What additional expressiveness brings non-strictness, with or without laziness? This paper tries to shed some light on these questions. First, in order to characterize non-strictness, di1erent evaluation strategies are introduced: strict, lazy, and lenient. Then, using program examples, how these evaluation strategies di1er from each other is examined, showing that non-strictness, even without laziness, allows a more general use of recursive de3nitions. We also report on a small experiment that we performed to examine how, in practice, laziness was used in a number of lazy benchmark programs. c © 2001 Elsevier Science Ltd. All rights reserved.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The Impact of Laziness on Parallelism and the Limits of StrictnessAnalysisG

The major question examined by this paper is whether suucient ne-grain parallelism can be obtained from programs written in a lazy functional language. To answer this question, we have implemented a prototype compiler based on a novel approach to strictness analysis (called abstract demand propagation) and we have compared this implementation strategy (optimized lazy) with other implementations...

متن کامل

The Impact of Laziness on Parallelism and the Limits of Strictness Analysis

The major question examined by this paper is whether suucient ne-grain parallelism can be obtained from programs written in a lazy functional language. To answer this question, we have implemented a prototype compiler based on a novel approach to strictness analysis (called abstract demand propagation) and we have compared this implementation strategy (optimized lazy) with other implementations...

متن کامل

Calculating Lenient Programs' Performance

Lenient languages, such as Id Nouveau, have been proposed for programming parallel computers. These languages represent a compromise between strict and lazy languages. The operation of parallel languages is very complex; therefore a formal method for reasoning about their performance is desirable. This paper presents a non-standard denotational semantics for calculating the performance of lenie...

متن کامل

Why Strict Churches Are Strong

The strength of strict churches is neither a historical coincidence nor a statistical artifact. Strictness makes organizations stronger and more attractive because it reduces free riding. It screens out members who lack commitment and stimulates participation among those who remain. Rational choice theory thus explains the success of sects, cults, and conservative denominations without recourse...

متن کامل

An Overview of the Parallel Language Id ( a foundation for pH , a parallel dialect of Haskell )

Id is an architecture-independent, general-purpose parallel programming language that has evolved and been in use for a number of years. Id does not have a sequential core; rather, it is implicitly parallel, with the programmer introducing sequencing explicitly only if necessary. Id is a mostly-functional language, in the family of non-strict functional languages with a Hindley-Milner static ty...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Comput. Lang.

دوره 26  شماره 

صفحات  -

تاریخ انتشار 2000